#include <climits>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

// 题目链接：https://www.nowcoder.com/questionTerminal/2c6a0a8e1d20492f92941400036e0890?page=1&onlyReference=false
//给定给定两个字符串 str1 和 str2，再一个字符串数组 strs，返回在 strs 中 str1 和 str2 的最小距离，如果 str1 或 str2 为 null，或不在 strs 中，返回-1。
//输入描述
//输入包含有多行，第一输入一个整数 n （1 < n < 10^5）,代表数组 strs 的长度,第二行有两个字符串分别代表 str1 和 str2，接下来 n 行，每行一个字符串，代表数组 strs（保证题目中出现的所有字符串长度均小于等于 10)。
//输出描述
//输出一行，包含一个整数，代表返回的值。
//补充说明
//时间复杂度 O(n)，额外空间复杂度 O(1)


vector<int> HashVector(const vector<string>& strs, 
                    const string& str1, const string& str2)
{
    // str1对应位置设为1，str2对应位置设为2
    // 否则为0
    int n = strs.size();
    vector<int> hash_v(n, 0);
    for(int i = 0; i < n; i++)
    {
        if(strs[i] == str1) { hash_v[i] = 1; }
        else if(strs[i] == str2) { hash_v[i] = 2; }
    }
    return hash_v;
}

int LowerWay(const vector<int>& v)
{
    int n = v.size();

    int min = INT_MAX;
    bool have_s1 = false;
    bool have_s2 = false;
    for(auto e: v)
    {
        if(e == 1) { have_s1 = true;}
        if(e == 2) { have_s2 = true;}
    }
    if(!have_s1 || !have_s2) { return -1; }


    for(int i = 0; i < n; i++)
    {
        if(v[i] != 1) { continue; }
        for(int j = n - 1; j > 0; j--)
        {
            if(v[j] != 2) { continue; }
            int length = abs(i - j);
            min = (min < length)? min: length;
        }
    }

    for(int i = 0; i < n; i++)
    {
        if(v[i] != 2) { continue; }
        for(int j = n - 1; j > 0; j--)
        {
            if(v[j] != 1) { continue; }
            int length = abs(i - j);
            min = (min < length)? min: length;
        }
    }
    return min;
}

void test()
{
	// 接收输入
    int n = 0;
    cin >> n;
    string str1;
    string str2;
    cin >> str1 >> str2;
    if(str1.empty() || str2.empty()) { cout << -1 << endl; return 0;}
    vector<string> strs(n);
    for(int i = 0; i < n; i++)
    {
        cin >> strs[i];
    }

    vector<int> v = HashVector(strs, str1, str2);

    cout << LowerWay(v) << endl;
}




int main() 
{
    

    return 0;
}